﻿Public Class xtf_ABMequipo

    Dim ulg_row As DataRow
    Dim obj_equipo_ As cls_equipo_ = Nothing

    Public Sub New()
        InitializeComponent()
        Cargarequipotipo_()
        Cargarcentrocostoorden_()
        AgregarValidaciones()
    End Sub

    Public Overrides Sub CargarObjetos()
        MyBase.CargarObjetos()
        Cargarequipotipo_()
        Cargarcentrocostoorden_()
    End Sub

    Private Sub Cargarequipotipo_()
        Dim tmp_obj As Integer = 0
        tmp_obj = cbo_equipotipo.EditValue
        Dim equipotipo_ As New cls_equipotipo_
        equipotipo_.CargarTodos()
        cargarCombo(cbo_equipotipo, equipotipo_.Items)
        cbo_equipotipo.EditValue = IIf(tmp_obj <> 0, tmp_obj, cbo_equipotipo.EditValue)
    End Sub

    Private Sub Cargarcentrocostoorden_()
        Dim tmp_obj As Integer = 0
        tmp_obj = cbo_centrocostoorden.EditValue
        Dim centrocostoorden_ As New cls_centrocostoorden_
        centrocostoorden_.CargarXtipo(opt_obra.SelectedIndex)
        cargarCombo(cbo_centrocostoorden, centrocostoorden_.Items, True, True)
        cbo_centrocostoorden.EditValue = IIf(tmp_obj <> 0, tmp_obj, cbo_centrocostoorden.EditValue)
    End Sub
    Private Sub opt_obra_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles opt_obra.SelectedIndexChanged
        Cargarcentrocostoorden_()
    End Sub

    Public Shadows Sub Nuevo(ByRef listado As Form)
        Try
            frm_listado = listado
            Me.Text = CType(frm_listado, xtf_ListadoBase).lbl_modulo.Text & " - Nuevo"
            obj_equipo_ = New cls_equipo_
            btn_Registro.Enabled = False
            Me.Show()
            opt_obra.SelectedIndex = 1
        Catch ex As Exception
            'Dim frmError As New frm_ErrorManager(ex.Message)
        End Try
    End Sub

    Public Shadows Sub Modificar(ByRef equipo As cls_equipo_, ByRef listado As Form, ByRef row As DataRow)
        If IsNothing(obj_equipo_) Then
            obj_equipo_ = New cls_equipo_
        End If
        obj_equipo_ = equipo
        frm_listado = listado
        ulg_row = row : bbi_imprimir.Enabled = True

        Me.Text = CType(frm_listado, xtf_ListadoBase).lbl_modulo.Text & " - " & obj_equipo_.ToString
        txt_ID.Text = obj_equipo_.idequipo
        txt_Nombre.Text = obj_equipo_.nombre
        txt_tag.Text = obj_equipo_.tag
        cbo_equipotipo.EditValue = obj_equipo_.idequipotipo
        txt_observaciones.Text = obj_equipo_.observaciones
        If Not IsNothing(obj_equipo_.centrocostoorden) Then
            opt_obra.SelectedIndex = obj_equipo_.centrocostoorden.tipo
        End If
        cbo_centrocostoorden.EditValue = obj_equipo_.idobra
        btn_Registro.Enabled = True

        Me.Show()

    End Sub

    Public Overrides Function ComprobarDatos() As Boolean
        If Not ControlarValidaciones() Then
            ErrManagerShow("000004", Me)
            Return False
        End If

        'REGISTROS DUPLICADOS----------------------------------------------------
        If txt_tag.Text <> "" Then
            Dim col2 As New Collections.Generic.List(Of stc_campoValor)
            Dim comp2 As New stc_campoValor
            comp2.campo = "tag"
            comp2.valor = txt_tag.Text
            col2.Add(comp2)

            Dim comp3 As New stc_campoValor
            comp3.campo = "idobra"
            comp3.valor = cbo_centrocostoorden.EditValue
            col2.Add(comp3)

            If ComprobarDuplicado("equipo_", col2, "idequipo <> " & obj_equipo_.idequipo) Then
                ErrManagerShow("000010", Me, " Dato: Tipo / TAG")
                Return False
            End If
        End If
        'REGISTROS DUPLICADOS----------------------------------------------------

        Return True
    End Function

    Public Shadows Sub btn_Guardar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_Guardar.Click
        If ComprobarDatos() Then
            obj_equipo_.nombre = txt_Nombre.Text
            obj_equipo_.tag = txt_tag.Text
            If (cbo_equipotipo.EditValue <> 0) Then
                obj_equipo_.idequipotipo = cbo_equipotipo.EditValue
            End If
            obj_equipo_.observaciones = txt_observaciones.Text
            obj_equipo_.idobra = cbo_centrocostoorden.EditValue
            If txt_ID.Text = "" Then
                obj_equipo_.Nuevo(True)
                If frm_listado.Visible Then
                    ulg_row = CType(frm_listado, xtf_LISTADOequipo_).AgregarItem(obj_equipo_)
                End If
                Modificar(obj_equipo_, frm_listado, ulg_row)
            Else
                obj_equipo_.Modificar()
                If frm_listado.Visible Then
                    CType(frm_listado, xtf_LISTADOequipo_).ModificarItem(obj_equipo_, ulg_row)
                End If
                Modificar(obj_equipo_, frm_listado, ulg_row)
            End If
            flg_Modificado = False : btn_Guardar.Enabled = False : bbi_guardar.Enabled = False
        End If
    End Sub

    Private Sub btn_Registro_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_Registro.Click
        If Not IsNothing(obj_equipo_.registro) Then
            Dim ABMRegistro As New xtf_ABMRegistro(obj_equipo_.registro)
            If ABMRegistro.ShowDialog() = Windows.Forms.DialogResult.OK Then
                flg_Modificado = True
            End If
        End If
    End Sub


    Private Sub btn_Cerrar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_Cerrar.Click
        If flg_Modificado Then
            bol_comprobarCerrado = False
            Select Case ErrManagerShow("000001", Me)
                Case Windows.Forms.DialogResult.Yes
                    If ComprobarDatos() Then
                        btn_Guardar_Click(Nothing, Nothing)
                    Else
                        Exit Sub
                    End If
                Case Windows.Forms.DialogResult.Cancel : bol_comprobarCerrado = True
                    Exit Sub
            End Select
        End If
        Me.Dispose()
    End Sub
End Class